<?php
/**
 * 该类用于学生信息的创建和编辑
 * @author 卜成磊
 *
 */
	class EditorModel{
		/**
		 * 该函数用于新建一个学生的基本信息
		 * @param array $data 要创建的数据，键名要与数据可中的字段保持骨一直
		 */
		public function createBaseInfo($data){
			$class=$data["iclass"];
			unset($data["iclass"]);
			$data["class"]=$class;
			$info=M("Baseinfo");
			$base=D("Base");
			if ($base->checkSID($data['sid'])==false) {
				return "您的学号输入有误请检查";
			}
			$count=$info->where("sid=".$data['sid'])->count();
			if($count==1){
				if ($info->where("sid=".$data["sid"])->save($data)>=0) {
					return 1;
				}else{
					return "数据提交失败";
				}
			}else{
				if ($info->add($data)) {
					return 1;
				}else{
					return "数据提交失败";
				}
			}
			
		}
		/**
		 * 该函数用于新建一个学生的家庭信息
		 * @param array $data 要创建的数据，键名要与数据可中的字段保持骨一直
		 * @param string $sid 学生的学号
		 */
		public function createFamilyInfo($sid,$data,$mode="create"){
			$times=0;
			$info=M("Familyinfo");
			$data1["sid"]=$sid;
			for($i=1;$i<=2;$i++){
				$data1["name"]=$data["name".$i];
				$data1["relation"]=$data["relation".$i];
				$data1["workplace"]=$data["workplace".$i];
				$data1["job"]=$data["job".$i];
				$data1["salary"]=$data["salary".$i];
				$data1["phone"]=$data["phone".$i];
				
				if(empty($data1["name"])||empty($data1["relation"])||empty($data1["workplace"])||empty($data1["job"])||empty($data1["salary"])||empty($data1["phone"])){
					if ($times>0) {
						return 1;
					}
				}
				
				if($mode=="create"){
					$data1["position"]=$i;
					if($info->add($data1)){
						$times++;
					}else{
						return "数据提交失败";
					}
					
				}else{
					$where["position"]=$i;
					$where["sid"]=$sid;
					$info->where($where)->save($data1);
				}
			}
			
			return 1;
		}
		/**
		 * 该函数用于新建一个学生的奖罚信息信息
		 * @param array $data 要创建的数据，键名要与数据可中的字段保持骨一直
		 */
		public function createSanctionInfo($sid,$data){
			$info=M("Sanctioninfo");
			$data["sid"]=$sid;
			$where["sid"]=$sid;
			$where["year"]=$data["year"];
			$bkms=$info->where($where)->getField("bkms");
			$tmp1=explode("&", $bkms);
			$cxms=$info->where($where)->getField("cxms");
			$tmp2=explode("&", $cxms);
			$term=$data["term"];
			$tmp1[0]=$data["bkms1"];//上半个学期补考门数
			$tmp2[0]=$data["cxms1"];//上半个学期重修门数
			$tmp1[1]=$data["bkms2"];//下半个学期补考门数
			$tmp2[1]=$data["cxms2"];//下半个学期重修门数
			$bkms=implode("&", $tmp1);
			$cxms=implode("&", $tmp2);
			$data["bkms"]=$bkms;
			$data["cxms"]=$cxms;
			unset($data["bkms1"]);
			unset($data["bkms2"]);
			unset($data["cxms1"]);
			unset($data["cxms2"]);
			unset($data['createSanctionInfo']);
			$count=$info->where($where)->count();
			if($count>0){
				if($info->where($where)->save($data)){
					return 1;
				}else{
					return "数据更新失败";
				}
			}else{
				if ($info->add($data)) {
					return 1;
				}else{
					return "数据提交失败";
				}
			}
		}
		/**
		 * 该函数用于新建一个学生的资助信息
		 * @param array $data 要创建的数据，键名要与数据可中的字段保持骨一直
		 */
		public function createHelpInfo($sid,$tmp){
			$info=M("Helpinfo");
			$data[$tmp["pre"]."_zldjsj"]=$tmp["zldjsj"];
			$data[$tmp["pre"]."_time"]=$tmp["time"];
			$data[$tmp["pre"]."_grade"]=$tmp["grade"];
			if ($info->where("sid=".$sid)->count()==1) {
				if ($info->where("sid=".$sid)->save($data)) {
					return 1;
				}else{
					return "数据提交失败";
				}
			}else{
				$st["sid"]=$sid;
				$info->add($st);
				if ($info->where("sid=".$sid)->save($data)) {
					return 1;
				}else{
					return "数据提交失败";
				}
			}
		}
		/**
		 * 该函数用于新建一个学生的入党信息
		 * @param array $data 要创建的数据，键名要与数据可中的字段保持骨一直
		 */
		public function createPartyInfo($sid,$data){
			$info=M("Partyinfo");
			$count=$info->where("sid=".$sid)->count();
			if($count==1){
				if ($info->where("sid=".$sid)->save($data)) {
					$isparty=$info->where("sid=".$sid)->getField("zzsj");
					if($isparty!="0000-00-00" && $isparty<=date("Y-m-d")){
						M("Baseinfo")->where("sid=".$sid)->setField("isparty", "1");
					}
					return 1;
				}else{
					return "数据更新失败";
				}
			}else{
				$data["sid"]=$sid;
				if ($info->add($data)) {
					return 1;
				}else{
					return "数据提交失败";
				}
			}
			
		}
		/**
		 * 该函数用于新建一个学生的任职信息
		 * @param array $data 要创建的数据，键名要与数据可中的字段保持骨一直
		 */
		public function createClassJobInfo($sid,$tmp,$year){
			$info=M("Classjobinfo");
			$grade=($year);
			$key=array_keys($tmp);
			for($i=0;$i<count($key);$i++){
				if(!empty($tmp[$key[$i]])){
					switch ($key[$i]){
						case "up1":
							$data[$i]["year"]=$grade;
							$data[$i]["term"]="up";
							$data[$i]["job"]=$tmp["up1"];
							$data[$i]["sid"]=$sid;
							break;
						case "up2":
							$data[$i]["year"]=$grade+1;
							$data[$i]["term"]="up";
							$data[$i]["job"]=$tmp["up2"];
							$data[$i]["sid"]=$sid;
							break;
						case "up3":
							$data[$i]["year"]=$grade+2;
							$data[$i]["term"]="up";
							$data[$i]["job"]=$tmp["up3"];
							$data[$i]["sid"]=$sid;
							break;
						case "up4":
							$data[$i]["year"]=$grade+3;
							$data[$i]["term"]="up";
							$data[$i]["job"]=$tmp["up4"];
							$data[$i]["sid"]=$sid;
							break;
						case "up5":
							$data[$i]["year"]=$grade+4;
							$data[$i]["term"]="up";
							$data[$i]["job"]=$tmp["up5"];
							$data[$i]["sid"]=$sid;
							break;
						case "down1":
							$data[$i]["year"]=$grade;
							$data[$i]["term"]="down";
							$data[$i]["job"]=$tmp["down1"];
							$data[$i]["sid"]=$sid;
							break;
						case "down2":
							$data[$i]["year"]=$grade+1;
							$data[$i]["term"]="down";
							$data[$i]["job"]=$tmp["down2"];
							$data[$i]["sid"]=$sid;
							break;
						case "down3":
							$data[$i]["year"]=$grade+2;
							$data[$i]["term"]="down";
							$data[$i]["job"]=$tmp["down3"];
							$data[$i]["sid"]=$sid;
							break;
						case "down4":
							$data[$i]["year"]=$grade+3;
							$data[$i]["term"]="down";
							$data[$i]["job"]=$tmp["down4"];
							$data[$i]["sid"]=$sid;
							break;
						case "down5":
							$data[$i]["year"]=$grade+4;
							$data[$i]["term"]="down";
							$data[$i]["job"]=$tmp["down5"];
							$data[$i]["sid"]=$sid;
							break;
					}
				}
			}
			$key=array_keys($data);
			$count=count($key);
			$right=0;
			for($i=0;$i<$count;$i++){
				$where["sid"]=$data[$key[$i]]["sid"];
				$where["year"]=$data[$key[$i]]["year"];
				$where["term"]=$data[$key[$i]]["term"];
				if($info->where($where)->count()==1){
					$result=$info->where($where)->setField("job",$data[$key[$i]]["job"]);
				}else{
					$result=$info->add($data[$key[$i]]);
				}
				if ($result>0) {
					$right++;
				}
			}
			if ($right>=1) {
				return 1;
			}else{
				return "数据操作失败";
			}
			
		}
		/**
		 * 该函数用于新建一个学生的备注信息
		 * @param array $data 要创建的数据，键名要与数据可中的字段保持骨一直
		 */
		public function createRemark($sid,$data){
			$info=M("Remark");
			$data["sid"]=$sid;
			if($info->where("sid=".$sid)->count()==1){
				$result=$info->where("sid=".$sid)->setField("remark",$data["remark"]);
			}else{
				$result=$info->add($data);
			}
			if ($result>0) {
				return 1;
			}else{
				return "数据处理失败";
			}
		}
		/**
		 * 该函数用于修改一个学生的基本信息
		 * @param array $data 要创建的数据，键名要与数据可中的字段保持骨一直
		 */
		public function modifyBaseInfo($where,$data,$type){
			$base=D("Base");
			if ($base->checkSID($where['sid'])) {
				return "您的学号输入有误请检查";
			}
			switch ($type){
				case "base":
					$modify=M("Baseinfo");
					break;
				case "family":
					$modify=M("Familyinfo");
					break;
				case "sanction":
					$modify=M("Sanctioninfo");
					break;
				case "help":
					$modify=M("Helpinfo");
					break;
				case "party":
					$modify=M("Partyinfo");
					break;
				case "classjob":
					$modify=M("Classjobinfo");
					break;
				case "remark":
					$modify=M("Remark");
					break;
				default:
					return "类型错误";
			}
			if ($modify->where($where)->save($data)) {
				return true;
			}else{
				return "信息修改失败";
				
			}
		}
		
		public function createByInfo($sid,$data){
			$by=M("Graduate");
			if ($by->add($data)) {
				return true;
			}else{
				return "信息提交失败";
			
			}
		}
	}
?>